package com.coming.mySpring.utils;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
@RestController
@RequestMapping("/fast")
//这里是说明你这个类是干什么用的
@Api(value = "文件上传API",description="文件上传下载的功能")
public class FastDFSActive {
    //上传

    /**
     * @RequestPart 请求参数认证  required = true 必传   value = "file" 前端请求的参数名叫file
     * @param file
     * @return
     */
    @PostMapping
    public AjaxResult upload(@RequestPart(required = true,value = "file") MultipartFile file){
        try {
            byte[] bytes = file.getBytes();
            String filename = file.getOriginalFilename();//上传的文件的名字 全名 包含了后缀名
            /*
                 lastIndexOf(".") + 1  :  以点作为最后的索引(相当于以"."作为光标0开始,+1是寻找向后的一位)
             */
            String suffix = filename.substring(filename.lastIndexOf(".") + 1);//包含了.的
            String uploadPath = FastdfsUtil.upload(bytes, suffix);//返回的就是上传文件的路径//包含组的
            return AjaxResult.success().setDate(uploadPath);
        } catch (IOException e) {
            e.printStackTrace();
            return AjaxResult.error().setMsg("网络异常，请联系管理员");
        } catch (Exception e){
            e.printStackTrace();
            return AjaxResult.error().setMsg("网络异常，请稍后再试");
        }
    }
    //删除
    @DeleteMapping
    public AjaxResult delete(@RequestParam(required = true,value = "path") String  path){
        try {

            String filePath = path.substring(1);
            //处理  group1
            String group = filePath.substring(0, filePath.indexOf("/"));
            //处理  /M00/03/68/CgAIC2O5LmiAJXbsAAI3GK6t8KE523.jpg
            String bodyPath = filePath.substring(filePath.indexOf("/") + 1);
            System.out.println(group);
            System.out.println(bodyPath);
            FastdfsUtil.delete(group,bodyPath);
            return AjaxResult.success();
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.error().setMsg("网络异常，请联系管理员");
        }
    }
    //下载
}
